.s-table {
  font-size: $table-font-size;
  position: relative;
  box-sizing: border-box;
  color: $table-text-color;
  border-color: $table-border-color;
  background: $table-background;

  &__scroll-x,
  &__scroll-y {
    height: 100%;
  }

  &__wrap {
    display: inline-flex;
    flex-direction: column;
    flex-wrap: nowrap;
    min-width: 100%;
    height: 100%;
  }

  &__header,
  &__tr {
    display: flex;
  }

  &__header {
    flex-shrink: 0;
  }

  &__body {
    overflow: hidden;
    flex-grow: 1;
  }

  &__th {
    font-weight: $font-weight-bold;
  }

  &__tr {
    display: flex;

    &--stripe {
      background: $table-tr-stripe-background;
    }
  }

  &__th,
  &__td {
    display: flex;
    overflow: hidden;
    align-items: center;
    box-sizing: border-box;
    width: 0;
    padding: $table-padding;
    border-bottom: 1px solid $table-border-color;
  }

  &__sort-wrap {
    margin-left: .25em;
  }

  &__sort-icon {
    width: 0;
    height: 0;
    color: $table-sort-color;
    border-right: .25em solid transparent;
    border-left: .25em solid transparent;

    &:first-child {
      border-bottom: .3em solid currentColor;
    }

    &:last-child {
      margin-top: 4rpx;
      border-top: .3em solid currentColor;
    }

    &--active {
      color: $table-sort-active-color;
    }
  }

  &--border {
    border-top-width: 1px;
    border-top-style: solid;
    border-left-width: 1px;
    border-left-style: solid;

    &::before,
    &::after {
      position: absolute;
      z-index: 2;
      content: ' ';
      border-color: inherit;
    }

    &::before {
      bottom: 0;
      left: 0;
      width: 100%;
      border-bottom-width: 1px;
      border-bottom-style: solid;
    }

    &::after {
      top: 0;
      right: 0;
      height: 100%;
      border-right-width: 1px;
      border-right-style: solid;
    }
  }

  &--border &__th,
  &--border &__td {
    border-right: 1px solid $table-border-color;
  }

  &--align-left &__th,
  &--align-left &__td {
    justify-content: flex-start;
    text-align: left;
  }

  &--align-center &__th,
  &--align-center &__td {
    justify-content: center;
    text-align: center;
  }

  &--align-right &__th,
  &--align-right &__td {
    justify-content: flex-end;
    text-align: right;
  }

  & &__th,
  & &__td {
    &--align-left {
      justify-content: flex-start;
      text-align: left;
    }

    &--align-center {
      justify-content: center;
      text-align: center;
    }

    &--align-right {
      justify-content: flex-end;
      text-align: right;
    }
  }
}